<?php
/**
 * Created by PhpStorm.
 * User: xudongsheng
 * Date: 2017/9/19
 * Time: 下午3:42
 */

namespace app\admin\model;


class AdPosition extends \think\Model
{
    public static $types =   [
                ['form'=>'img','text'=>'图片','template'=>'<a href="{$url}"><img src="{$content}" alt="{$title}"></a>'],
                ['form'=>'text','text'=>'文字','template'=>'<a href="{$url}">{$content}</a>'],
                ['form'=>'flash','text'=>'FLASH','template'=>'<a href="{$url}"><embed src="{$content}" quality="high" width="{$width}" height="{$height}" wmode="opaque" type="application/x-shockwave-flash"></embed></a>']
    ];

    /** 获取器 之 类型
     * @param $value
     * @param $data
     * @return mixed|string
     */
    public function getTypeTextAttr($value,$data){
        return isset(self::$types[$data['type']])?self::$types[$data['type']]['text']:'error';
    }

    /** 广告位与广告之间的 关联 之 求 广告 数量
     * @return
     */
    public function adItemNum(){
        // 关系 其实 是 一对 多 但是 为了 查出 一条 num  适用 hasoNE
        return $this->hasOne('AdItem','ad_position_id','ad_position_id')
                    ->group('ad_position_id')
                    ->field('count(*) as num,ad_position_id');
    }

    /** 广告位与广告之间的 关联
     * @return
     */
    public function adItem(){
        return $this->hasMany('AdItem','ad_position_id','ad_position_id')
                    ->field('ad_position_id,title');
    }

    public static function adItemType($type,$item = NULL){
        return is_null($item)?(isset(self::$types[$type])?self::$types[$type]:NULL)
                             :((isset(self::$types[$type]) AND isset(self::$types[$type][$item]))?self::$types[$type][$item]:NULL);
    }
}